<?php
/**
* @version	1.0: producenci.php marum56 
* @package	Joomla
* @subpackage	Producenci
* @copyright	Copyright (C) 2011 All rights reserved.
* @license	
*/

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

require_once ('table'.DS.'msTablePrzeniesienie_status.php');
require_once ('table'.DS.'msTableMaszynyObiekt.php');


/**
 * Objekt realizujący potwierdzenie przeniesienia maszyny. 
 *
 * @package		Joomla
 * @subpackage		Obiekt
 */
class msPotwierdzenia extends JObject
{
	/**
	 * Constructor
	 */
	function __construct()
	{
	}

	/*
	 * Tu wchodzimy po linku z e-maila.
	 */
	function display( )
	{
		require_once('email.php');
		global $mainframe;

		// Pobranie parametrów z linku adresu
		$gid = JRequest::getCmd('g');   // Identyfikator przeniesienia
		$stat = (int) JRequest::getCmd('s');	// Identyfikator statusu
		// Nowy status tranzakcji
		$new_stat = $stat + 1;
		
		 
		/*
		 * Odczyt rekordu tabeli "jos_Przeniesienie" po gid-ie i zbindowanie go na obiekt
		 */ 
		$row = msMysql::getloadAssoc('*', 'jos_przeniesienia', 'gid', $gid, 'gid', false, false);
		if ( ! $row ) {
			$mainframe->enqueueMessage('Nie można odczytać tabeli "jos_przeniesienia".', 'error');
			return false;
		}	
		// Nowy pusty obiekt
		$oPrzeniesienia = new msObject();
		// Wypełnij obiekt polami rekordu tabeli
		$oPrzeniesienia->bind($row);
		
		
		/*
		 * Sprzwdzenie statusu - czy potwierdzenie (stat=0), czy zakończenie (stat=1)
		 */
		 if ( $stat !== 0 ) 
		 { 
		 	// Email informujacy o zakończeniu przeniesienia np. do A. Rygiel
//$adresEmail = 'a.rygiel@mega-service.pl';
$adresEmail = 'mariusz.kukulski@mega-service.pl';
			$email = new msEmail();
			if ( JError::isError($email->emailInformacja( $oPrzeniesienia, $adresEmail ) ) )  {
				return false;
			}		 	 
		 	// Zmiana statusu tranzakcji
		 	if ( ! msPotwierdzenia::zmianaStatusu( $gid, $new_stat ) ) {
		 	 	return false;
		 	}
		 	// Potwierdzenie OK
		 	return true; 
		 }
				
		
		/*
		 * Przeniesienie maszyny pomiędzy obiektami.
		 */
		// Wyślij e-mail do przyjmujacego maszynę
$oPrzeniesienia->whoPrzyjalEmail = 'mariusz.kukulski@mega-service.pl';
		$email = new msEmail();
		if ( JError::isError($email->emailPrzeniesienie( $oPrzeniesienia, $new_stat ) ) )  {
			return false;
		}
		
		 if ( ! msPotwierdzenia::przeniesienieMaszyny( $oPrzeniesienia ) ) {
		 	 return false;
		 }

		// Zmiana statusu tranzakcji
		if ( ! msPotwierdzenia::zmianaStatusu( $gid, $new_stat ) ) {
			return false;
		}			
		
		// Potwierdzenie OK
		return true;
	}
	
	/**
	 * Zmiana statusu tranzakcji, czyli dodanie rekordu do tabeli "jos_Przeniesienia_status"
	 *
	 * @param 	int	$gid	Identyfikator przeniesienia	
	 * @param 	int	$stat	Identyfikator nowego statusu		 
	 * @return 	bool	true	Sukces
	 */
	function zmianaStatusu( $gid, $stat )
	{	
		global $mainframe;
		
		// Utworz obiekt tablicy
		if ( ! $oTab =& msTable::getTable('Przeniesienie_status') ) {
			$mainframe->enqueueMessage('Nie można załadować obiektu klasy msTablePrzeniesienie_status', 'error');
			return false;
		}
		
		// Dodaj pola do obiektu
		$oTab->gid = $gid;	
		$oTab->status = $stat;
		
		// Dodaj rekord przeniesienia
		if ( ! $oTab->store() ) {
			$mainframe->enqueueMessage( $oTab->getError(), 'error' );
			return false;
		}
		
		return true;
	}
	
	/**
	 * Przeniesienie maszyny, czyli dodanie rekordu do tablicy "jos_maszyny_obiekt"
	 *
	 * @param 	int	$oP	Obiekt przeniesienia	 
	 * @return 	bool	true	Sukces
	 */
	function przeniesienieMaszyny( $oP )
	{	
		global $mainframe;
		
		// Utworz obiekt tablicy
		if ( ! $oTab =& msTable::getTable('MaszynyObiekt') ) {
			$mainframe->enqueueMessage('Nie można załadować obiektu klasy msTableMaszynyObiekt', 'error');
			return false;
		}
		// Pobierz gid maszyn
		$gid_maszyn = msMysql::getloadResult('gid','jos_maszyny', 'nri', $oP->nri, 'gid');
		
		// Pobierz rekord maszyny z dotychczasowym obiektem (supermarketem)
		if ( ! $oTab->load( $gid_maszyn ) ) {
			$mainframe->enqueueMessage('Nie można załadować rekordu z tabeli "jos_maszyny" o gid '.$gid_maszyn, 'error');
			return false;
		}
		
		// Pobierz gid obiektu przyjmującego
		$gid_na_obiekt = msMysql::getloadResult('gid','jos_obiekty', 'obiekt', $oP->na_obiekt, 'gid');
		
		// Dodaj pola do obiektu
		$oTab->obiekt = $gid_na_obiekt;
		$oTab->whoRegister = $oP->whoWydal;

		unset($oTab->id);
	
		// Dodaj rekord przeniesienia
		if ( ! $oTab->store() ) {
			$mainframe->enqueueMessage( $oTab->getError(), 'error' );
			return false;
		}
		
		return true;
	}	

}

